#define _CRT_SECURE_NO_WARNINGS 1
#include<bits/stdc++.h>
using namespace std;

int N, K;
int T[30];
int ans = INT_MAX;
int M[30];

void dfs(int i, int maxT)
{
    if (maxT > ans)
        return;
    if (i == N)
    {
        ans = min(ans, maxT);
        return;
    }

    for (int j = 0; j < K; j++)
    {
        M[j] += T[i];
        dfs(i + 1, max(maxT, M[j]));
        //
        M[j] -= T[i];
    }
}

int main()
{
    cin >> N >> K;
    for (int i = 0; i < N; i++)
        cin >> T[i];

    dfs(0, 0);
    cout << ans;
}